FROM registry.cn-hangzhou.aliyuncs.com/docker-huanngfu/python:3.12.6

# 环境变量（不变）
ENV SOURCE=https://mirrors.aliyun.com/pypi/simple/ \
    POETRY_HOME=/opt/poetry \
    POETRY_VERSION=2.2.1 \
    PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1

# 1) 依赖安装阶段：配置 pip 源、安装系统依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
        ca-certificates \
        libdbus-1-3 \
    && rm -rf /var/lib/apt/lists/* \
    && pip config set global.index-url $SOURCE \
    && pip config set global.trusted-host mirrors.aliyun.com \
    && pip install --upgrade pip \
    && pip cache purge

# 2) 安装 Poetry（放在全局虚拟环境之外）
ENV POETRY_HOME=/opt/poetry
#RUN python3 -m venv $POETRY_HOME
#ENV PATH="$POETRY_HOME/bin:$PATH"
RUN pip install poetry==$POETRY_VERSION

# 3) 复制项目（确保在 WORKDIR 指定的目录中）
WORKDIR /app
COPY . /app

# 4) 让 Poetry 将依赖安装到全局环境，而不是在项目中创建虚拟环境
# 这一步确保依赖安装在系统的全局环境中，Python 解释器可以直接找到
RUN poetry config virtualenvs.in-project false
# 不创建虚拟环境
RUN poetry config virtualenvs.create false
# 安装依赖
RUN poetry install --no-interaction --no-ansi

# 5) 验证阶段（可选，但推荐）
# 确认 bleak 已经在全局环境中可用
#RUN python -c "import bleak; print('bleak ok', bleak.__version__)"
# 将原来的验证命令替换为以下内容
RUN python -c "import sys; print('Python:', sys.executable); import bleak; print('bleak imported successfully')"


# 6) 运行阶段
# 使用全局 Python 解释器直接运行程序，确保在 /app 下有 Program.py
CMD ["python", "Program.py"]

